Ranking Strategy
↑一般的な用語かどうかわからないが、mrsekut.icon
「検索結果の並び順を良い感じにするもの」
を総称する用語が欲しかったので設定した
Algoliaは、
テキストマッチやフィルターを使って「検索ヒットするレコード」をまず選び、
次に「より良いレコードを上に出す」ために順位付け(ランキング)をします。
このとき、単純にスコアで並べるのではなく、「複数の基準」を順番に見ていって順位を決めるという仕組みになっています。
デフォルトのランキング基準(順番)
1. Typo
1. typo(タイプミス)数が少ない
2. Geo (if applicable)
2. ジオロケーション(位置情報)が近い
3. Words (if applicable)
3. クエリ内の単語がたくさんマッチしている
4. Filters
4. フィルタにマッチしている
5. Proximity
5. 単語間の距離が近い
6. Attribute
6. 最もよくマッチしている属性
7. Exact
7. 完全一致している単語数
この順番で比べていきます。
例えば:
typoが少ない方が勝つ
同じなら、位置情報が近い方が勝つ
それでも同じなら、フィルタで絞られた方が勝つ
…という感じで、だんだん細かく見ていく感じ。
GPT-4.icon
順序を決めるための具体的な軸・基準(ランキング基準)
Relevance score
→ ユーザのクエリとどれだけ関連しているか。
→ 伝統的なスコアリング関数の一つ。TF-IDFの発展系。いまでも強い。 Learning to Rank (LTR)
→ 機械学習ベースでランキング関数を学習する方法。
Click-through rate (CTR)
→ 過去のクリックデータに基づく人気度。
Personalization
→ ユーザ個人に合わせた並び替え。
Popularity
→ 人気順。たとえば購入数やアクセス数など。
Freshness
→ 新しさ順。ニュースとかに効く。
---
順序のつけ方に関する用語(技術や考え方)
Ranking model
→ 学習したランキングの「モデル」という呼び方。特に機械学習系。
Re-ranking
→ 一回ランキングしたあと、さらに別基準で並び替え直すこと。
Multi-objective ranking
→ 関連性・新しさ・人気など複数基準をバランスして並べる方法。
Diversification
→ 結果に多様性を持たせる工夫(例:全部似た商品ばかり並ばないようにする)。
Tie-breaking
→ スコアが同点だったときの並び順の決め方。
---
関連するフレームワーク・概念
Relevance ranking
→ 関連度ベースで並べる基本方針。
Learning to rank (LTR)
→ 上にも書いたけど、特に重要。LambdaMARTやRankNetみたいな手法が有名。
Scoring and sorting
→ 「スコアリングしてソートする」という超基本的なパターンの言い方。